package ru.study.thinkin.chapter13;

interface HasBatteries{}
interface Waterproof{}
interface Shoots{}

class Toy {
	public long id = 77L;
	Toy(){}
	//Toy(int i){}
}

class FancyToy extends Toy implements HasBatteries,Waterproof,Shoots {
	FancyToy() {
		//super(1);
		super();
	}	
}

public class ToyTest {
	static void printInfo(Class cc) {
		System.out.println("Имя Класса: "+cc.getName() + " Это интерфейс ? ["+cc.isInterface()+"]");
		System.out.println("Простое имя "+cc.getSimpleName());
		System.out.println("каноническое имя "+cc.getCanonicalName());
	}
	public static void main(String[] args) {
		Class c = null;
		try {
			c = Class.forName("ru.study.thinkin.chapter13.FancyToy");
			
		} catch (ClassNotFoundException e) {
			System.out.println("Не найден класс FancyToy");
			System.exit(1);
		}
		
		printInfo(c);
		System.out.println("-=-=-=-=-=-=-=");
		
		for (Class face:c.getInterfaces()){
			printInfo(face);
		}
		System.out.println("-=-=-=-=-=-=-=");
		
		Class up = c.getSuperclass();
		Object obj = null;
		
		try {
			obj = up.newInstance();
		} catch (InstantiationException e) {
			System.out.println("Не удалось создать объект");
			System.exit(1);
		} catch (IllegalAccessException e) {
			System.out.println("Нет доступа");
			System.exit(1);
		}
		
		printInfo(obj.getClass());
		
		Toy t = new Toy();
		FancyToy ft = new FancyToy();			
         
	}
}
